MongoDB তে CRUD (Create, Read, Update, Delete) অপারেশন এবং Aggregation অপারেশন JavaScript (Node.js) ব্যবহার করে সম্পন্ন করা যায়। MongoDB এর সাথে JavaScript (Node.js) ব্যবহার করার জন্য MongoDB Node.js Driver অথবা Mongoose লাইব্রেরি ব্যবহার করা হয়।
এখানে আমরা MongoDB Node.js Driver ব্যবহার করে MongoDB তে CRUD অপারেশন এবং Aggregation অপারেশন কিভাবে করা যায় তা দেখবো।
MongoDB Node.js Driver ইনস্টলেশন
প্রথমে, MongoDB Node.js Driver ইনস্টল করতে হবে:
npm install mongodb
এটি MongoDB এর সাথে JavaScript ব্যবহার করতে সাহায্য করবে।
1. MongoDB এ Create (ডেটা তৈরি)
MongoDB তে ডেটা ইনসার্ট করতে insertOne() বা insertMany() ব্যবহার করা হয়। insertOne() একটি একক ডকুমেন্ট ইনসার্ট করে, এবং insertMany() একাধিক ডকুমেন্ট ইনসার্ট করে।
একক ডকুমেন্ট ইনসার্ট
const { MongoClient } = require("mongodb");
async function createDocument() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const result = await collection.insertOne({
name: "John Doe",
age: 30,
email: "john.doe@example.com"
});
console.log("Document inserted with ID:", result.insertedId);
} finally {
await client.close();
}
}
createDocument();
একাধিক ডকুমেন্ট ইনসার্ট
async function createMultipleDocuments() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const result = await collection.insertMany([
{ name: "Alice", age: 25, email: "alice@example.com" },
{ name: "Bob", age: 28, email: "bob@example.com" }
]);
console.log(`${result.insertedCount} documents were inserted.`);
} finally {
await client.close();
}
}
createMultipleDocuments();
2. MongoDB এ Read (ডেটা পড়া)
MongoDB তে ডেটা পড়তে find() বা findOne() ব্যবহার করা হয়। find() সাধারণত একটি বা একাধিক ডকুমেন্ট ফেরত দেয়, এবং findOne() একটি একক ডকুমেন্ট ফেরত দেয়।
একক ডকুমেন্ট পড়া
async function readDocument() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const user = await collection.findOne({ name: "John Doe" });
console.log(user);
} finally {
await client.close();
}
}
readDocument();
অনেক ডকুমেন্ট পড়া
async function readMultipleDocuments() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const users = await collection.find({}).toArray();
console.log(users);
} finally {
await client.close();
}
}
readMultipleDocuments();
3. MongoDB এ Update (ডেটা আপডেট)
MongoDB তে ডেটা আপডেট করতে updateOne() বা updateMany() ব্যবহার করা হয়। updateOne() একটি একক ডকুমেন্ট আপডেট করে, এবং updateMany() একাধিক ডকুমেন্ট আপডেট করে।
একক ডকুমেন্ট আপডেট
async function updateDocument() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const result = await collection.updateOne(
{ name: "John Doe" },
{ $set: { age: 35 } }
);
console.log(`${result.modifiedCount} document(s) updated.`);
} finally {
await client.close();
}
}
updateDocument();
অনেক ডকুমেন্ট আপডেট
async function updateMultipleDocuments() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const result = await collection.updateMany(
{ age: { $gte: 30 } },
{ $set: { status: "Senior" } }
);
console.log(`${result.modifiedCount} document(s) updated.`);
} finally {
await client.close();
}
}
updateMultipleDocuments();
4. MongoDB এ Delete (ডেটা মুছা)
MongoDB তে ডেটা মুছতে deleteOne() বা deleteMany() ব্যবহার করা হয়। deleteOne() একটি একক ডকুমেন্ট মুছে ফেলে, এবং deleteMany() একাধিক ডকুমেন্ট মুছে ফেলে।
একক ডকুমেন্ট মুছা
async function deleteDocument() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const result = await collection.deleteOne({ name: "John Doe" });
console.log(`${result.deletedCount} document(s) deleted.`);
} finally {
await client.close();
}
}
deleteDocument();
অনেক ডকুমেন্ট মুছা
async function deleteMultipleDocuments() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const result = await collection.deleteMany({ age: { $lt: 30 } });
console.log(`${result.deletedCount} document(s) deleted.`);
} finally {
await client.close();
}
}
deleteMultipleDocuments();
5. Aggregation (অ্যাগ্রিগেশন)
MongoDB তে অ্যাগ্রিগেশন অপারেশনগুলি ডেটার উপর জটিল বিশ্লেষণ করতে ব্যবহৃত হয়। অ্যাগ্রিগেশন পাইপলাইন ব্যবহার করে বিভিন্ন স্টেজে ডেটা প্রসেস করা হয়, যেমন গ্রুপিং, সোর্টিং, ফিল্টারিং ইত্যাদি।
অ্যাগ্রিগেশন পাইপলাইন উদাহরণ
async function aggregationExample() {
const client = new MongoClient("mongodb://localhost:27017");
try {
await client.connect();
const db = client.db("testDB");
const collection = db.collection("users");
const pipeline = [
{ $match: { age: { $gte: 30 } } },
{ $group: { _id: "$status", total: { $sum: 1 } } },
{ $sort: { total: -1 } }
];
const result = await collection.aggregate(pipeline).toArray();
console.log(result);
} finally {
await client.close();
}
}
aggregationExample();
এই উদাহরণে:
$match:age৩০ এর বেশি ডকুমেন্ট গুলো ফিল্টার করা হয়েছে।$group:statusঅনুযায়ী গ্রুপ করা হয়েছে এবং প্রতিটি গ্রুপের জন্য মোট ডকুমেন্ট সংখ্যা গণনা করা হয়েছে।$sort: মোট ডকুমেন্ট সংখ্যা অনুযায়ী সোর্ট করা হয়েছে।
সারাংশ
MongoDB তে CRUD (Create, Read, Update, Delete) অপারেশন এবং Aggregation অপারেশন JavaScript (Node.js) ব্যবহার করে খুব সহজেই করা যায়। MongoDB Node.js Driver ব্যবহার করে আপনি ডেটাবেসে ডেটা ইনসার্ট, আপডেট, পড়া এবং মুছতে পারবেন। অ্যাগ্রিগেশন পাইপলাইন ব্যবহার করে ডেটার উপর জটিল বিশ্লেষণ করতে এবং গ্রুপিং, সোর্টিং, ফিল্টারিং করতে পারবেন।
Read more